package org.jeecgframework.boot.springaimcpservice.controller;

import org.jeecgframework.boot.springaimcpservice.common.Result;
import org.jeecgframework.boot.springaimcpservice.service.IStatsQueryService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

/**
 * 统计查询Controller
 * 提供基于自然语言的统计查询接口
 */
@RestController
@RequestMapping("/stats")
public class StatsQueryController {

    @Autowired
    private IStatsQueryService statsQueryService;

    /**
     * 统计查询接口
     * 用户可以通过自然语言进行统计查询
     * 
     * @param request 包含自然语言查询的请求体
     * @return 查询结果和分析
     */
    @PostMapping("/query")
    public Result<String> statsQuery(@RequestBody StatsQueryRequest request) {
        return statsQueryService.executeStatsQuery(request.getNaturalLanguageQuery());
    }

    /**
     * GET方式的统计查询接口
     * 用户可以通过URL参数进行统计查询
     * 
     * @param query 自然语言查询
     * @return 查询结果和分析
     */
    @GetMapping("/query")
    public Result<String> statsQueryGet(@RequestParam("query") String query) {
        return statsQueryService.executeStatsQuery(query);
    }

    /**
     * 请求体类
     */
    public static class StatsQueryRequest {
        private String naturalLanguageQuery;

        public String getNaturalLanguageQuery() {
            return naturalLanguageQuery;
        }

        public void setNaturalLanguageQuery(String naturalLanguageQuery) {
            this.naturalLanguageQuery = naturalLanguageQuery;
        }
    }
}